MailMaster 1.0.4

MailMaster is a FaceSpan Application that takes mailing lists and puts their
posts into a simple FileMaker Pro database.

MailMaster requires Eudora (Light) 3.x  (and possibly higher) and FileMaker
Pro 4 (it may work with 3, I haven't tried).  The MailMaster system we have is
an old 8 MB IIci running 7.5.5 with RAMDoubler to let it have all the apps
open at once.  It has Eudora Light 3.1.3 and FileMaker Pro 4.0v1 connecting to
a FMPro Server on our local network.  Performance isn't great on that machine,
but it doesn't have to be.



Setup

You need these parts to run the MailMaster:
Eudora Light 3.1.3 from http://www.eudora.com/
FileMaker Pro from FileMaker, Inc.

On older systems, you'll need the Appearance Manager.  You can get it from
FaceSpan's website:  http://www.facespan.com/

If you want to have the MailMaster (MM) automatically mount volumes, you need
to have a scripting addition installed that allows you to do so.  The
MailMaster supports the 8.5 Mount Volume command as well as the MountVolume
and MountIP OSAXen.  You can also run an external script file or a script line
to handle it.

Error handling in MailMaster is controlled by the "Stop on Errors" checkbox in
the MailMaster Settings dialog.  If you have the "Stop on Errors" option
turned on, MailMaster will come to a complete stop on any critical error.  If
you turn off that option, MailMaster will abort the current run, but will try
again the next time a check is scheduled.

Be warned that when errors occur, you may lose or get extra messages in your
archive.  This is a design flaw in MailMaster which was/is to be fixed in 1.1. 
For full safety you might want to keep copies of messages handled by
MailMaster (your Eudora filters can be set to Copy incoming messages as well
as Transfer them, or you can edit the MailMaster source.)




Eudora Notes

Before running MailMaster, you need to have Eudora Light set up, running, and
able to check mail.  Then make these changes to your settings:

Turn off automatic mail checking if you are letting MM run unattended (MM will
tell Eudora to check mail, and it keeps the alert from flashing in the menu
all the time, not to mention possible timeouts on launch.)

Make a folder called "Mailing Lists", and then make mailboxes in that folder
for each mailing list you want to handle.

Set up Filters in Eudora to separate the mail into those mailboxes.



FileMaker Notes

In Filemaker, you need to provide a database with at least those elements of
the Sample Template that you want to save.  (The Sample Template is an
extremely simple FileMaker Pro DB that will archive one mailing list for you.)

Your DB (in this version of MM) should have an automatically-updated index
numbering field.  Also, the names of fields that should be filled in should
match their headers.

The "New Record Script" should switch to the proper layout before making a new
record.  This can be very important (the required fields must exist in the
layout used to make records...thus, a make new record layout).  The sample
database provided has a layout specifically for making records (it's a copy of
the Browser layout).

The "After Script" should exist and should end record creation.



MailMaster Notes

OK, now that you have Eudora and FMP set up, you can configure the MailMaster. 
The first time MM is run it will ask you where Eudora and FileMaker Pro are. 
Once you select those two files, they will be launched, then the Status window
will open.

MailMaster has four dialogs that are used to set various options for Mail
Lists, Volumes, and MM itself.  You start setting options by clicking on the
MailMaster Settings button (the MM icon with radio buttons on it).


MailMaster Settings

Mailing Lists:  All the mailing lists you have set up in MM will be listed
here.  You can use the New, Delete, and Options buttons to add a new, delete
existing, or change options on existing mailing lists.

Check for mail every...:  You can set it between 0 minutes (constant checking)
and 10000 days.  I recommend a time between 1 hour and 1 day, but you are free
to choose any amount of time you want.

When Idling, Quit...:  If either of these is checked, the app referenced will
not be launched at startup.  Instead, MM will only launch the app if it is
needed, and will have the app quit after MM is done working with it.  Note
that the MailMaster will not know if you are working with the app already (in
this version).

Network Volumes:  MM can automatically log you on to a network server if you
wish it to.  This opens the dialog where you can create volumes to try.


Mail List Settings

List Name: The name that MailMaster refers to the mailing list by.
Mailbox Name: The name of this ML's mailbox in Eudora.
Database Name: The name of the Database MM refers to when talking to
FileMaker.

Save Subject, From, To, Body, Date, Time, Attachments:  You can have MM store
any or all of these parts of the message.  If you want to store Attachments
you need to set a folder to store them in.  (Also, that folder must exist when
you hit OK.)

Database Setting Summary: This shows you what the current settings are in the
Database Settings dialog.  This information is what MM uses to talk to
FileMaker.

Save Defaults: Clicking this button saves the current settings as the default
settings for any new Mailing Lists created.  (This is undone if you hit Cancel
here or at the MailMaster Setup dialog.)

Database Settings: This opens the Database Settings dialog.


Database Settings

Open Method:  You can have FileMaker open the database in four different ways:

- Open Direct: equivalent to tell app "FileMaker Pro" to open "Database Name". 
This is useful if you have a local FileMaker server with guest access enabled,
which is what I have at work.
- Open Local File: Similar to Open Direct, but you choose a local file to open
instead of just giving FileMaker the database name.
- Run Script File: You can choose a script to run.  See below for more
information.
- Run Script Line: Type in a line of AppleScript for MM to run.  Not all that
useful, but included for completeness.

Set and the changing Info field: These are used to set options for the Open
Method.

New Record Script:  When MailMaster goes to add a message to the database it
calls the New Record Script in FileMaker.  This should be a ScriptMaker script
that switches to the layout for making new records (if necessary) and makes a
fresh record for MM to fill in.

Use Before Script:  If you have a ScriptMaker script you want to run before
filling in the record (but after it's been created) you can specify it here. 
This is probably not very useful, as said steps can also happen in the New
Record Script.  Oh, well.

Use After Script:  This script is called after MM fills in the record.  It
should do any post-processing you want to do and then Exit Record to end data
entry.  It should always exist to close the record for now.


Network Volumes

Network Volumes, New, Delete: These allow you to make new and delete existing
Network Volume records.

Mount When Needed: The entire purpose for the Network Volume settings.  By
using this, MM will automatically open any volume it can for Attachment
storage.  Unchecking this disables MM mounting that volume.

Using: MM requires an OSAX of some kind to mount volumes.  Four are
pre-programmed into MM, while the other two allow you to run Script Files (see
below) or a script line to mount the volume.


Username, Password, Zone, Server, and Volume Name: These are the Appletalk
settings required to mount a volume.  I apologize for not providing protection
for password entry.  MM is not a secure setup by any means.

Username, Password, IP, and Volume: These are the IP settings required to
mount a volume.  The IP field may be numbers or text.  MM will create the URL
for you.  (A full URL for mounting, say, an ASIP server looks like:

afp://username:password@127.0.0.1/volName/

This might be useful if you want to mount a volume using guest access, as MM
doesn't handle that yet.  Sorry! :(

Unmount (Put Away) Afterwards:  When MM is done checking and moving mail, MM
will put away any volumes it attempted to mount who have this option checked.



Other Notes

The MailMaster uses the fonts Chicago (which *should* be switched out for your
Large System Font), Geneva, and Palatino.


When using "Run Script File" for Network Volumes, your script file will be
load scripted and this handler will be called:

NV_MountVolume(volRec)

which returns true (success) or false (not success--trap your errors!)  Here's
what a Volume Record looks like.

volRec: {volName:"", autoMount:true, mountUsing:1, volUser:"", volPassword:"",
volServer:"", volZone:"", putAway:true}

volName is "Volume:", volUser is "Username:", volPassword is "Password:",
volServer is your file's path, volZone is "Zone:".  You can ignore autoMount,
mountUsing, and putAway.


When using "Run Script File" for Opening FileMaker Databases, your script file
will be load scripted and this handler will be called:

DB_OpenDatabase(dbName)

which returns true if it succeeds and false otherwise (trap your errors!)




Future Ideas for the MailMaster

Docs!  Good ones!

Real error handling! :)  This would include an activity log and changing Fatal
Error dialogs into FaceSpan dialogs that dismiss themselves.  (The MailMaster
project began as an internal thing for work with virtually no error handling
whatsoever, and thus the errors are usually trapped everywhere.)

Secured entry for passwords, encrypted password storage, and username/password
entry for database information.

On the flip side, support for guest access in the UI (you can do guest access
through loaded scripts pretty easily).

Checking for mounted volumes and open applications, and not closing them if
they were already running/logged in.

Saving the window positions...

Specifying the folder name in the interface, so that you can have some more
freedom of organization.

An option to not verify the Attachments folder, and/or to attempt to mount its
server if it is in the Network Volumes list.

Moving "Get the Message", "Add the Message to the Database", and "Mount the
Server" into external scripts, with a specified interface.  Thus, you can use
the MailMaster with other mail, database, and network logon apps/OSAXen.  MM
is halfway set up for this now.  When this happens, the mandatory New Record
Script and After Script will be merged into the Database section.

Support for a user-created list of fields, which is then passed around the
plugins to let them handle them as they can.

Support for using a unified message database instead of individual databases
for each mailing list, by adding more entries to the information available to
the Database Plugin.  You can fake this now by pointing all the database
options at the same database and writing a Before or After Script that gets
the Mailing List Name through:

tell application "MailMaster 1.0" to set mlName to GetCurrentMLName()

and then fill in a field that lists all the mailing list names that you are
on.  (This is a quick hack.)

Changeover to a Localizable format.

...and whatever else I haven't thought of yet.

If you are interested in writing the plug-in script for your EMail client,
Database program, Network Login method, or something else that can be useful
to MailMaster users, let me know at the EMail address below.



Legal Info

MailMaster 1.0.4 has been released as freeware.

Portions of this software are included under license. 1998 Digital Technology
International.  All rights reserved.  For more information call 801-226-2984
or see http://www.facespan.com.


All questions/comments/suggestions/bug reports/flames/etc. are welcome at

parody@esglabs.com

Mike Miller
ESG Labs
November 14, 2000
